package com.ludi.advices;

import org.aspectj.lang.ProceedingJoinPoint;
/**
*@author:ludi
*@date:2020/8/20 11:33
*@description:测试spring-aop
*/
public class MyAdvice {

    public void before(){
        System.out.println("执行方法之前，打印日志");
    }

    public void after(){
        System.out.println("执行方法之后，打印日志");
    }

    //后置通知(如果出现异常不会调用)
    public void afterReturning() {
        System.out.println("这是后置通知(方法不出现异常)");
    }

    //环绕通知
    public Object around(ProceedingJoinPoint point) throws Throwable {
        System.out.println("这是环绕通知之前部分!!");
        Object object = point.proceed(); //调用目标方法
        System.out.println("这是环绕通知之后的部分!!");
        return object;
    }

    //异常拦截通知
    public void afterException() {
        System.out.println("异常通知!");
    }
}
